package com.flyduck.modules.system.mapper;

import com.flyduck.modules.system.domain.SysRole;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface SysRoleMapper {
    int deleteByPrimaryKey(Long id);

    int insert(SysRole record);

    int insertSelective(SysRole record);

    SysRole selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(SysRole record);

    int updateByPrimaryKey(SysRole record);

    /**
     * 查询所有的角色
     * @return
     */
    List<SysRole> findList();

    /**
     * 分页查询
     * @param keyword
     * @return
     */
    Page<SysRole> findPage(@Param("keyword") String keyword);

    /**
     * 根据角色id查询角色
     * @param id
     * @return
     */
    SysRole getRoleById(@Param("id") Long id);

    /**
     * 启用/禁用角色
     * @param id
     * @param enabled
     */
    void updateStatus(@Param("id") Long id, @Param("enabled") Boolean enabled);

    /**
     * 根据用户id查询角色
     * @param userId
     * @return
     */
    List<SysRole> getRolesByUserId(@Param("userId") Long userId);
}